package com.hspedu.threaduse;

/**
 * @author LiuJinTao
 * @className Thread01
 * @date 2024/06/22 21:05
 * @description TODO
 */
public class Thread01 {
    public static void main(String[] args) {
        // 创建一个 Cat 对象，可以当做线程使用
        Cat cat = new Cat();
        cat.start();// 启动线程
        // 当 main 线程启动一个子线程后，Thread-0，主线程不会阻塞

        System.out.println("主线程继续执行" + Thread.currentThread().getName());// main
        for (int i = 0; i < 10; i++) {
            System.out.println("主线程 i=" + i);
            // 让主线程休眠
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }
    }
}

// 当一个类继承了 Thread 类，该类就可以当做线程使用
// 我们会重写 run 方法，写上自己的业务代码
// Thread 类实现了 Runnable 接口的 run 方法
class Cat extends Thread {
    int times = 0;
    @Override
    public void run() {// 重写 run 方法，写上自己的业务逻辑
        while (times < 80) {
            // 该线程每隔一秒，在控制台输出“喵喵，我是小猫咪”
            System.out.println("喵喵，我是小猫咪" + (++times) + "线程名=" + Thread.currentThread().getName());
            // 让该线程休眠一秒钟
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }
    }
}